<?php

class TesteController extends Zend_Controller_Action {
	
	public function init() 
	{
		/*
		 * Initialize action controller here
		 */
	}
	
	public function indexAction() 
	{
		// Lista de Controle de Acesso
		$acl = new Zend_Acl ();
		
		// Módulos do Sistema
		// Recursos que Podem ser Acessados
		$sistema = new Zend_Acl_Resource ( 'sistema' );
		$atendimento = new Zend_Acl_Resource ( 'atendimento' );
		$almoxarifado = new Zend_Acl_Resource ( 'almoxarifado' );
		$administracao = new Zend_Acl_Resource ( 'administracao' );
		
		// Estrutura Hierárquica dos Módulos
		// Inclusão dos Recursos e Hierarquia
		$acl->addResource ( $sistema );
		$acl->addResource ( $atendimento, $sistema );
		$acl->addResource ( $almoxarifado, $sistema );
		$acl->addResource ( $administracao, $sistema );
		
		// Grupos do Sistema
		// Papéis que Usuários Podem Receber
		$usuarios = new Zend_Acl_Role ( 'Usuários' );
		$atendentes = new Zend_Acl_Role ( 'Atendentes' );
		$estoquistas = new Zend_Acl_Role ( 'Estoquistas' );
		$administradores = new Zend_Acl_Role ( 'Administradores' );
		
		// Estrutura Hierárquica dos Grupos
		// Inclusão de Papéis e Hierarquia
		$acl->addRole ( $usuarios );
		$acl->addRole ( $atendentes, $usuarios );
		$acl->addRole ( $estoquistas, $usuarios );
		$acl->addRole ( $administradores, array ($atendentes, $estoquistas ) );
	
		// Credenciais de Acesso
		$acl->allow('Atendentes','atendimento');
		$acl->allow('Estoquistas','almoxarifado');
		$acl->allow('Administradores','administracao');
		
		// Qualquer Usuário -> Módulo Administrativo ?
		echo $acl->isAllowed('Usuários', 'administracao') ? 'Sim' : 'Não'; // Não
		
		// Estoquistas -> Módulo Almoxarifado ?
		echo $acl->isAllowed('Estoquistas', 'almoxarifado') ? 'Sim' : 'Não'; // Sim
		
		// Atendentes -> Módulo Almoxarifado ?
		echo $acl->isAllowed('Atendentes', 'almoxarifado') ? 'Sim' : 'Não'; // Não
		
		// Administradores -> Módulo Administração
		echo $acl->isAllowed('Administradores', 'administracao') ? 'Sim' : 'Não'; // Sim
		
		// Administradores -> Módulo Atendimento
		echo $acl->isAllowed('Administradores', 'atendimento') ? 'Sim' : 'Não'; // Sim
	
	}

}

